<?php
namespace Admin\Controller;
use Think\Controller;

class SettingController extends Controller {

	function __construct() {
		//继承父类
		parent::__construct();

		//判断登录状态
		if(!D('Admin')->islogin()){//未登录
			$this->error('您尚未登录，请先登录！',U('login/login'),3);
		}
		//判断操作是否授权
		if(!D('Admin')->isoperate(CONTROLLER_NAME,ACTION_NAME)){//未授权
			$this->error('您尚无此操作权限！',U('index/welcome'),3);
		}
    }

	//空方法，防止报错
	public function _empty(){
        $this->index();
    }
	
	//系统设置列表
    public function index(){
		$where="1 ";
		$info=I("info");
		if($info){
			@extract($info);
			if($keyword){$where.="and (set_key like '%$keyword%' or set_value like '%$keyword%') ";$this->assign('keyword',$keyword);}
		}

		$setting=M('Setting');
		// 查询满足要求的总记录数
		$count      = $setting->where($where)->count();
		$Page       = new \Think\Page($count,15);
		//分页跳转的时候保证查询条件
		if($info){
			foreach($info as $key=>$val) {
				$Page->parameter['info['.$key.']']   =   urlencode($val);
			}
		}
		$pageshow   = $Page->adminshow();
		// 进行分页数据查询
		$listinfo = $setting->where($where)->order('set_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
		$this->assign('listinfo',$listinfo);
		$this->assign('pageshow',$pageshow);

		$this->display();
    }

	//key存在性
	public function existsetting(){
		$param=I("param");
		if(!$param){
			$status="n";
			$info="参数不正确";
		}else{
			$count=M("Setting")->where("set_key = '".$param."'")->count();
			if($count){//存在，验证失败
				$status="n";
				$info="此配置Key已存在";
			}else{//不存在，验证成功
				$status="y";
				$info="此配置Key不存在，可以增加";
			}
		}
		$this->ajaxReturn(array('status'=>$status,'info'=>$info));
	}

	//添加配置信息
    public function addsetting(){
		if (IS_POST){
			$info=I("info");
			$info['set_key']=trim($info['set_key']);
			$info['set_value']=trim($info['set_value']);
			$info['set_remarks']=trim($info['set_remarks']);
			$flag=M("Setting")->add($info);
			if($flag){
				$this->success('添加配置信息成功！',U('setting/index'),3);
			}else{
				$this->error('添加配置信息失败！',U('setting/index'),3);
			}
		}else{
			$this->display();
		}
    }

	//编辑配置信息
    public function editsetting(){
		$set_id=I("get.set_id");
		if (IS_POST){
			$info=I("info");
			$info['set_value']=trim($info['set_value']);
			$info['set_remarks']=trim($info['set_remarks']);
			$flag=M("Setting")->where("set_id=".$set_id)->save($info);
			if($flag){
				$this->success('编辑配置信息成功！',U('setting/index'),3);
			}else{
				$this->error('编辑配置信息失败！',U('setting/index'),3);
			}
		}else{
			$settinginfo=M("Setting")->where("set_id=".$set_id)->find();
			$this->assign('settinginfo',$settinginfo);
			$this->display();
		}
    }

	//删除配置信息
	public function delsetting(){
		$set_id=I("get.set_id");
		M('Setting')->where('set_id='.$set_id)->delete();
		$this->success('配置信息删除成功！',U('setting/index'),3);
	}

}